package com.example.dbcms.service;




import com.example.dbcms.domain.CostStatistic;
import com.example.dbcms.domain.PropertyFee;
import com.github.pagehelper.PageInfo;

import java.util.List;
import java.util.Map;


public interface PropertyFeeService {

    /**
     * 查询所有物业费用记录
     * @param propertyFee 条件查询
     * @return
     */
    PageInfo<PropertyFee> selectAllPropertyFeeInfo(PropertyFee propertyFee);

    /**
     * 条件查询
     * @param mapCondition
     * @return
     */
    List<PropertyFee> selectAllPropertyFeeInfoByCondition(Map<String, String> mapCondition);

    /**
     * 新增一条记录
     * @param propertyFee
     * @return
     */
    int addPropertyFee(PropertyFee propertyFee);

    /**
     * 刷新插入记录
     * @param residentId
     * @param year
     * @param month
     * @param propertyFee
     * @return
     */
    int addPropertyFee(int residentId,int year,int month,String propertyFee);

    /**
     * 通过id删除记录
     * @param id
     * @return
     */
    int deletePropertyFee(int id);

    /**
     * 得到最大记录id
     * @return
     */
    int getMaxPropertyFeeId();

    /**
     * 通过id得到物业费用
     * @param id
     * @return
     */
    PropertyFee getPropertyById(int id);

    /**
     * 修改一条物业费用
     * @param propertyFee
     * @return
     */
    int updatePropertyFee(PropertyFee propertyFee);

    /**
     * 删除多条物业记录
     * @param ids
     * @return
     */
    int deleteMultiplePropertyFee(List<Integer> ids);

    /**
     * 缴纳多条物业费用记录
     * @param ids
     * @return
     */
    int payMultiplePropertyFee(List<Integer> ids,String username);

    /**
     * 缴纳单条物业费用
     * @param id
     * @return
     */
    int payPropertyFee(int id,String username);

    /**
     * 得到所有物业费用
     * @return
     */
    CostStatistic getAllPropertyFee(CostStatistic costStatistic);
    /**
     * 提醒有物业费用待缴纳的用户缴费
     * @return
     */
    int remindPayPropertyFee();



}
